Modern data processing systems, such as a general purpose computer, a handheld computer, a cellular telephone, media players, etc. have been reduced in size to the point that they can often be readily carried around by a user. Furthermore, these devices are powerful enough that they can provide substantial computing power to allow a user to maintain contact information, maintain calendar information, provide email functionality, and even provide web browsing. These devices also may include support for a task or a To Do list or database and other sources of data for a user. An example of a small handheld computer is the Palm Treo, and other examples of handheld computers include those which run a Windows CE operating system.
These handheld computers typically allow a user to synchronize their data between the handheld computer and another computer, such as a user's desktop computer, such that both computers maintain the same set of information, such as the same calendar for the user, thereby allowing the user to view their calendar on either the desktop computer or the handheld computer. The synchronization is typically performed by coupling together the host computer with a handheld computer through a mechanical and electrical connection provided by a dock. FIG. 1 shows an example in the prior art of a handheld computer being coupled mechanically and electrically to a host computer through the dock 26. The system 10 includes the host computer 12 and the handheld computer 14. Synchronization software 16, running on the host, performs the synchronization between the respective databases, such as the contacts database 18 which is synchronized with the handheld contacts database 20. Furthermore, the synchronization software 16 synchronizes the calendar database 22 on the host computer with the handheld's calendar database 24. Synchronization software 16 on the host computer can synchronize each of the databases separately through the use of “conduits.” The synchronization software 16 opens and maintains a data connection link through a conduit, and each conduit must implement all the software needed to make and maintain the link in order to synchronize a particular database. The handheld computer merely acts as a storage device by vending its storage memory, such as a hard drive or a flash memory, to the host computer which, through the synchronization software 16, opens each database to perform the synchronization. There is often no active agent on the handheld computer 14 which participates in the synchronization process; in other words, the synchronization software 16 on the host computer 12 performs the synchronization operations for both sets of databases on both devices. When there is a synchronization agent on the handheld computer, it does not have the facilities and architecture described in this disclosure, including, for example, providing a plug-in model on both the handheld and the host for different data classes, and does not allow applications on the handheld computer to run concurrently with the synchronization process, and various other features described herein. There is no use of authentication and encryption using self-signed certificates with private key/public key cryptography. Certain existing systems allow for limited synchronization of emails between a host and a handheld computer, but there is no synchronization of changes in email account setup information. Certain systems also allow for the synchronization of bookmarks for web browsing between a host and a handheld computer. These systems allow for the synchronization of a set of bookmarks having the same format in both the handheld and the host. Certain synchronization systems are described under the name “SyncML” and further information about these systems can be found at openmobilealliance and at openmobilealliance.org/tech/affiliates/syncml/symmlindex.html.